home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / shells / scsh-0.4 / scsh-0 / scsh-0.4.2 / bcomp / for-reify.scm < prev    next >
Text File  |  1995-10-13  |  1KB  |  36 lines

  1. ; Copyright (c) 1993, 1994 Richard Kelsey and Jonathan Rees.  See file COPYING.
  2.  
  3. ; Things used by the expression returned by REIFY-STRUCTURES.
  4. ; Cf. link/reify.scm.
  5.  
  6. (define (operator name type-exp)
  7.   (get-operator name (sexp->type type-exp #t)))
  8.  
  9. (define (simple-interface names types)
  10.   (make-simple-interface #f
  11.              (map (lambda (name type)
  12.                 (list name (sexp->type type #t)))
  13.                   (vector->list names)
  14.                   (vector->list types))))
  15.  
  16. (define (package names locs get-location uid)
  17.   (let ((end (vector-length names))
  18.     (p (make-package list list ;(lambda () '())
  19.              #f #f "" '()
  20.              uid #f)))
  21.     (set-package-loaded?! p #t)
  22.     (do ((i 0 (+ i 1)))
  23.     ((= i end))
  24.       (let* ((name (vector-ref names i))
  25.          (probe (package-lookup p name)))
  26.     (if (not (binding? probe))
  27.         (package-define! p
  28.                  name
  29.                  usual-variable-type  ;May get clobbered later
  30.                  (get-location (vector-ref locs i))))))
  31.     (make-table-immutable! (package-definitions p))
  32.     p))
  33.  
  34. (define (transform names+proc env type-exp source name)
  35.   (make-transform names+proc env (sexp->type type-exp #t) source name))
  36.